const nav = {
  namespaced: true,
  state: {
    currentTab: 'home',
    currentTabs: [
      {
        label: '主页',
        name: 'home',
        path: 'home',
        icon: 'home',
        url: '/'
      }
    ],
    isLoadNav: false
  },
  mutations: {
    // 更新tab
    updateCurrentTab (state, current) {
      state.currentTab = current
    },
    // 新增tab
    updateCurrentTabs (state, current) {
      const tabs = state.currentTabs
      const tab = tabs.find(info => info.path === current.path)
      if (!tab) {
        tabs.push(current)
        state.currentTabs = tabs
      }
    },
    // 关闭tab，由于tab至始至终都会保留home（主页），所以关闭的时候不需要对后一个tab，做逻辑处理。
    removeCurrentTab (state, path) {
      const tabs = state.currentTabs
      tabs.forEach((item, index) => {
        if (item.path === path) {
          // 删除关闭的tab
          tabs.splice(index, 1)
          // 是否是选中的tab
          if (state.currentTab === item.path) {
            // 取前一个下标
            const newIndex = index - 1
            // 判断前一个下标是否存在
            if (newIndex >= 0) {
              // 获取前一个tab
              const newTab = tabs[newIndex]
              // 选中tab
              state.currentTab = newTab.path
            }
          }
        }
      })
      state.currentTabs = tabs
    },
    // 保存路由信息
    loadNav (state) {
      state.isLoadNav = true
    }
  },
  actions: {},
  getters: {
  }
}
export default nav
